package vn.fpt.fsoft.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "PremiseOutreach")
public class PremiseOutreach {
	private int premiseOutreachID;
	private String outreachLocation;
	private String localHotels;
	private String travelDetail;
	private String tvNearBus;
	private String tvNearRail;
	private String tvNearAirport;
	private boolean hostVisit;
	private int hostingContact;
	private boolean ParkingOnsite;
	private boolean ParkingSpaces;
	private String parkAlternative;
	private Premise premise;
	private String status;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	public int getPremiseOutreachID() {
		return premiseOutreachID;
	}

	public void setPremiseOutreachID(int premiseOutreachID) {
		this.premiseOutreachID = premiseOutreachID;
	}

	@Column(name = "OutreachLocation", length = 20, nullable = true)
	public String getOutreachLocation() {
		return outreachLocation;
	}

	public void setOutreachLocation(String outreachLocation) {
		this.outreachLocation = outreachLocation;
	}

	@Column(name = "LocalHotels", length = 20, nullable = true)
	public String getLocalHotels() {
		return localHotels;
	}

	public void setLocalHotels(String localHotels) {
		this.localHotels = localHotels;
	}

	@Column(name = "TravelDetail", length = 50, nullable = true)
	public String getTravelDetail() {
		return travelDetail;
	}

	public void setTravelDetail(String travelDetail) {
		this.travelDetail = travelDetail;
	}

	@Column(name = "TravelNearestBus", length = 50, nullable = true)
	public String getTvNearBus() {
		return tvNearBus;
	}

	public void setTvNearBus(String tvNearBus) {
		this.tvNearBus = tvNearBus;
	}

	@Column(name = "TravelNearestRail", length = 50, nullable = true)
	public String getTvNearRail() {
		return tvNearRail;
	}

	public void setTvNearRail(String tvNearRail) {
		this.tvNearRail = tvNearRail;
	}

	@Column(name = "TravelNearestAirport", length = 50, nullable = true)
	public String getTvNearAirport() {
		return tvNearAirport;
	}

	public void setTvNearAirport(String tvNearAirport) {
		this.tvNearAirport = tvNearAirport;
	}

	@Column(name = "HostVisits")
	public boolean isHostVisit() {
		return hostVisit;
	}

	public void setHostVisit(boolean hostVisit) {
		this.hostVisit = hostVisit;
	}

	@Column(name = "HostingContact", nullable = true)
	public int getHostingContact() {
		return hostingContact;
	}

	public void setHostingContact(int hostingContact) {
		this.hostingContact = hostingContact;
	}

	@Column(name = "VisitorParkingOnsite")
	public boolean isParkingOnsite() {
		return ParkingOnsite;
	}

	public void setParkingOnsite(boolean parkingOnsite) {
		ParkingOnsite = parkingOnsite;
	}

	@Column(name = "VisitorParkSpaces")
	public boolean isParkingSpaces() {
		return ParkingSpaces;
	}

	public void setParkingSpaces(boolean parkingSpaces) {
		ParkingSpaces = parkingSpaces;
	}

	@Column(name = "VisitorParkAlternative", length = 100, nullable = true)
	public String getParkAlternative() {
		return parkAlternative;
	}

	public void setParkAlternative(String parkAlternative) {
		this.parkAlternative = parkAlternative;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "PremiseID")
	public Premise getPremise() {
		return premise;
	}

	public void setPremise(Premise premise) {
		this.premise = premise;
	}

	@Column(name = "Status", length = 3, nullable = false)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public PremiseOutreach(int premiseOutreachID, String outreachLocation,
			String localHotels, String travelDetail, String tvNearBus,
			String tvNearRail, String tvNearAirport, boolean hostVisit,
			int hostingContact, boolean parkingOnsite, boolean parkingSpaces,
			String parkAlternative, Premise premise, String status) {
		this.premiseOutreachID = premiseOutreachID;
		this.outreachLocation = outreachLocation;
		this.localHotels = localHotels;
		this.travelDetail = travelDetail;
		this.tvNearBus = tvNearBus;
		this.tvNearRail = tvNearRail;
		this.tvNearAirport = tvNearAirport;
		this.hostVisit = hostVisit;
		this.hostingContact = hostingContact;
		ParkingOnsite = parkingOnsite;
		ParkingSpaces = parkingSpaces;
		this.parkAlternative = parkAlternative;
		this.premise = premise;
		this.status = status;
	}

	public PremiseOutreach() {
	}
}
